/**
 * 学习目标：两种枚举类型
 * 1、数字枚举：
 * 特点：
 *  1.1可以省略值，默认从0开始递增
 *  1.2如果设置了第一个属性的值，自动从第一个值开始递增
 * 2、文字枚举
 *  不可以省略值
 * 
 * 
 * 区别：
 *  字面量 + 联合 ：提供一组可选的取值返回
 *  枚举：提供一组可选的取值返回
 *    
 *  3.1枚举：只能表示字符串 或 数字
 *  3.2字面量 + 联合，可以表示任意数据类型，使用范围更广一些
 * 
 *  4、枚举： 既可以当做类型使用，写在注解中
 *            又可以当做值使用，参与js的运算
 */

type MyName = 'add' | 'del';
type MyNumber = 0 | 1 | 2 | 3;
type MyObj = { type: 'add' } | { type: 'del' };

function test(obj: MyObj) { };
test({ type: 'del' });

enum Status {
  RuZhi = 'RuZhi',
  LiZhi = 'LiZhi',
}

function delUser(status: Status) {
  console.log(status);
}

const aa = Status.LiZhi;
console.log(aa);
